翻訳と辞書
Words near each other
・ Escape (Journey album)
・ Escape (magazine)
・ Escape (Misia song)
・ Escape (Nine Lashes album)
・ Escape (play)
・ Escape (radio program)
・ Escape (Ram-Zet album)
・ Escape (Sirius XM)
・ Escape (The Piña Colada Song)
・ Escape (TV network)
・ Escape (TV series)
・ Escape (UK TV series)
・ Escape (video game)
・ Escape (Whodini album)
・ Escape 2 Mars
Escape analysis
・ Escape and evasion map
・ Escape and Radiate Coevolution
・ Escape artist (disambiguation)
・ Escape Artist (Garland Jeffreys album)
・ Escape Artist Records
・ Escape Artists
・ Escape Artists (Austrian band)
・ Escape Artists (Danish band)
・ Escape Artists (disambiguation)
・ Escape Artists Motion Pictures
・ Escape Artists Never Die
・ Escape at Dawn
・ Escape Attempt
・ Escape attempts and victims of the inner German border


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Escape analysis : ウィキペディア英語版
Escape analysis

In compiler optimization, escape analysis is a method for determining the dynamic scope of pointers - where in the program a pointer can be accessed. It is related to pointer analysis and shape analysis.
When a variable (or an object) is allocated in a subroutine, a pointer to the variable can ''escape'' to other threads of execution, or to calling subroutines. If an implementation uses tail call optimization (usually required for functional languages), objects may also be seen as escaping to ''called'' subroutines. If a language supports first-class continuations (as do Scheme and Standard ML of New Jersey), portions of the call stack may also escape.
If a subroutine allocates an object and returns a pointer to it, the object can be accessed from undetermined places in the program — the pointer has "escaped". Pointers can also escape if they are stored in global variables or other data structures that, in turn, escape the current procedure.
Escape analysis determines all the places where a pointer can be stored and whether the lifetime of the pointer can be proven to be restricted only to the current procedure and/or thread.
==Optimizations==
A compiler can use the results of escape analysis as a basis for optimizations:〔T. Kotzmann and H. Mössenböck, “Escape analysis in the context of dynamic compilation and deoptimization,” in Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments, New York, NY, USA, 2005, pp. 111–120.〕
* ''Converting heap allocations to stack allocations''. If an object is allocated in a subroutine, and a pointer to the object never escapes, the object may be a candidate for stack allocation instead of heap allocation.
* ''Synchronization elision''. If an object is found to be accessible from one thread only, operations on the object can be performed without synchronization.
* ''Breaking up objects'' or ''scalar replacement''. An object may be found to be accessed in ways that do not require the object to exist as a sequential memory structure. This may allow parts (or all) of the object to be stored in CPU registers instead of in memory.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Escape analysis」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.